/**
 * IM聊天性别相关工具函数
 * 性别字段规则：1=男，0=女，null/undefined=未知
 */

/**
 * 格式化性别显示文本
 * @param {number|null|undefined} sex - 性别值：1=男，0=女，null/undefined=未知
 * @returns {string} 性别文本
 */
export const formatGender = (sex) => {
  if (sex === 1) return '男';
  if (sex === 0) return '女';
  return '未知';
};

/**
 * 获取性别图标信息
 * @param {number|null|undefined} sex - 性别值：1=男，0=女，null/undefined=未知
 * @returns {object} 包含图标类名和颜色的对象
 */
export const getGenderIcon = (sex) => {
  if (sex === 1) {
    return {
      icon: 'fas fa-mars',
      color: '#3772FF',
      title: '男'
    };
  }
  if (sex === 0) {
    return {
      icon: 'fas fa-venus', 
      color: '#FF6B6B',
      title: '女'
    };
  }
  return {
    icon: 'fas fa-question-circle',
    color: '#999999',
    title: '未知'
  };
};

/**
 * 判断是否为男性
 * @param {number|null|undefined} sex - 性别值
 * @returns {boolean} 是否为男性
 */
export const isMale = (sex) => {
  return sex === 1;
};

/**
 * 判断是否为女性
 * @param {number|null|undefined} sex - 性别值
 * @returns {boolean} 是否为女性
 */
export const isFemale = (sex) => {
  return sex === 0;
};

/**
 * 判断性别是否未知
 * @param {number|null|undefined} sex - 性别值
 * @returns {boolean} 性别是否未知
 */
export const isGenderUnknown = (sex) => {
  return sex !== 1 && sex !== 0;
};

/**
 * 获取性别选项列表（用于表单选择）
 * @returns {Array} 性别选项数组
 */
export const getGenderOptions = () => {
  return [
    { value: 1, label: '男' },
    { value: 0, label: '女' }
  ];
};
